feat: Add comprehensive metrics reporting with threshold validation#64
Merged
ivan-velasco merged 4 commits intointernal/developfrom Sep 9, 2025
Merged
feat: Add comprehensive metrics reporting with threshold validation#64ivan-velasco merged 4 commits intointernal/developfrom
ivan-velasco merged 4 commits intointernal/developfrom
Conversation
- Introduced a new command `metrics-report` to aggregate metrics files and generate reports in various formats, including HTML and JSON. - Implemented options for controlling output formats, threshold checks, and custom output files. - Added HTML template for rendering performance metrics reports with interactive visualizations. - Created a metrics aggregator to handle the collection and processing of metrics data. - Developed threshold configuration management for performance monitoring and reporting. - Included tests for the new metrics aggregation and reporting features to ensure reliability and correctness.
- Integrated metrics collection into test execution, allowing for detailed tracking of test step results and HTTP requests. - Enhanced the `RunTestStep` method to record test check results using a metrics collector if enabled. - Implemented metrics output functionality in the `Process` method to write collected metrics to a specified file. - Added command-line flags for enabling metrics collection and specifying output files. - Introduced a global DPN state for managing endpoint collision detection during HTTP requests. - Updated HTML reporting template to accommodate new metrics features and improve user interaction.
- Simplified the DPNConfig structure by removing the EnableCollisions field, which is now disabled by default. - Updated related functions to reflect the removal of collision detection, ensuring similar endpoints are aggregated without hash suffixes. - Added documentation to clarify the default behavior of collision detection in the DPN.
aditi-malik
approved these changes
Sep 9, 2025
…ve obsolete integration tests - Adjusted the expected command count in the `TestRunCmd` function to 4, aligning with recent updates to the command structure. - Removed the `integration_test.go` file from the aggregator reporting module, as it is no longer needed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add Comprehensive Metrics Collection and Performance Reporting
Overview
This PR adds comprehensive metrics collection and performance reporting capabilities to Venom, enabling users to collect HTTP performance metrics during test execution and generate interactive HTML reports with threshold validation.
Key Features
🎯 Metrics Collection
venom runwith--metrics-enabledflag🛣️ Dynamic Path Normalization (DPN)
/users/123,/users/456) →/users/*📊 Interactive HTML Reports
⚡ Performance Thresholds
--fail-on-breachesfor explicit failuresUsage
Enable Metrics Collection
Generate Reports
Configure Thresholds
Technical Implementation
New CLI Commands
venom run --metrics-enabled --metrics-output=FILE: Collect metrics during test executionvenom metrics-report METRICS_FILE [OPTIONS]: Generate reports and validate thresholdsNew Packages
reporting/: Core metrics collection and threshold validationreporting/aggregator/: Metrics aggregation utilitiesexecutors/http/dpn.go: Dynamic path normalizationIntegration Points
Benefits
Backward Compatibility
--metrics-enabledTesting
Ready for beta testing - All core functionality implemented and tested.